#define _GNU_SOURCE // 声明可以使用扩展语法 gettid()
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>

// 线程1
void *thread_fun_1(void *arg)
{
    printf("线程1(%d)开始执行\n", gettid());
    return NULL;
}

// 线程2
void *thread_fun_2(void *arg)
{
    printf("线程2(%d)开始执行\n", gettid());
    return NULL;
}

int main(int argc, char const *argv[])
{
    printf("main线程(%d)开始执行\n", gettid());

    // 1. 创建线程
    pthread_t ptr1, ptr2;
    pthread_create(&ptr1, NULL, thread_fun_1, NULL);
    pthread_create(&ptr2, NULL, thread_fun_2, NULL);
    printf("main线程(%d)继续执行\n", gettid());
    // 2.等待线程结束
    pthread_join(ptr1, NULL);
    pthread_join(ptr2, NULL);
    printf("main线程(%d)结束执行\n", gettid());
    return 0;
}
